home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / rbbsdocs.zip / RBBSDOCS.APG < prev    next >
Text File  |  1990-11-05  |  3KB  |  65 lines

  1.  
  2.  
  3.  
  4.     APPENDIX G -- RBBS-PC And BASIC Compiler Patches for "Doors"            G-1
  5.  
  6.  
  7.     APPENDIX G -- RBBS-PC And BASIC Compiler Patches for "Doors"
  8.     ------------------------------------------------------------
  9.     A bug in  Microsoft's BASIC  and QuickBASIC compilers  requires SysOps  who
  10.     wish to  recompile RBBS-PC to apply the following patches.  The problem has
  11.     to do with  BASIC's treatment of  the communications port  when you exit  a
  12.     BASIC program.  The Data  Terminal Ready (DTR) line MUST be kept  on at all
  13.     times, or the modem will hang up on your caller.
  14.  
  15.     If  you are  recompiling RBBS-PC,  and you  plan to  use Doors  or external
  16.     protocols, you  must make the  following patches.   Any hex  editor can  be
  17.     used: DEBUG, which  comes with DOS,  or the Norton  Utilities are just  two
  18.     examples.   A  tutorial on how  to use  DEBUG is  beyond the scope  of this
  19.     document.
  20.  
  21.     There are actually two  patches, depending on the  version of the  compiler
  22.     you have.  The first patch is for QuickBASIC 2, 3 & 4 or BASCOM 6.0.
  23.  
  24.     The file you will  patch is BCOMx0.LIB (where X is  the QB version number).
  25.     Of course, you will save your original file before applying the  patch.  To
  26.     make the fix, you will search for the following string of HEX digits: 83 C2
  27.     04 32 C0 EE.  The assembly code for this string is:
  28.  
  29.     83 C2 04  ADD DX,4
  30.     32 C0     XOR AL,AL
  31.     EE        OUT DX,AL
  32.  
  33.     We need  to change the XOR  AL,AL to MOV AL,1.   Change the "32  C0" to "B0
  34.     01".  Make this change in both places where the string occurs.
  35.  
  36.     If  you use QB 4.5,  or BASCOM 7.0,  the patch is different.   Look for the
  37.     string: B0 00 E3 01 40 83 C2 04 EE.  In assembly code, it is:
  38.  
  39.     B0 00    MOV  AL,00
  40.     E3 01    JCXZ nnnn
  41.     40       INC  AX
  42.     83 C2 04 ADD  DX,4
  43.     EE       OUT  DX,AL
  44.  
  45.     Again, we want to put a  1 in AL, so we change  the "B0 00" to B0 01".   We
  46.     also need to remove the INC AX, so change the "40" to "90".
  47.  
  48.     You  may also want  to make an  additional patch.  This  patch will prevent
  49.     QuickBASIC from  pausing on a fatal  error.  Normally, BASIC  says "press a
  50.     key to  continue".   If RBBS-PC  were allowed  to recycle,  it would  do so
  51.     without  trouble, but BASIC will hold up your  board until you press a key.
  52.     If you have QuickBASIC 2.01 or 3.0, search the BCOMx0.LIB for the following
  53.     string of HEX  digits: E2 F8  E8 00 00 E8  00 00 E8  00 00 C3.   Change the
  54.     MIDDLE "E8 00 00"  to "C3 90 90".   If you have QuickBASIC 4.5,  search for
  55.     the string  "B8 07  0C CD  21" and  change the "CD  21" to  "90 90".   Now,
  56.     whenever  BASIC can't handle  an error,  it will  allow RBBS-PC  to recycle
  57.     quickly.
  58.  
  59.     If you have  BASCOM 7.0, you can  apply the patch for QB  4.5, although you
  60.     will have to patch whichever BC70xxxx.LIB file you use to link.
  61.  
  62.     Thanks to  Doug Azzarito, Jeff  Porter, Rod Bowman,  Kenny Gardner  and Bob
  63.     Eyer for information on these patches.
  64.  
  65.